#!/usr/bin/env python
# -*- coding:utf-8 -*-

class Graph(object):
    def __init__(self, *args, **kws):
        self.init(*args, **kws)

    def init(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")
    
    def weight(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass") 

    def cost(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass") 

    def heuristic(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")

    def neighbours(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")
    
    def sucessor(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")
    
    def precursor(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")

    def draw(self, *args, **kws):
        raise Exception("this func should be overwrite in subclass")


def test():
    pass 


if __name__ == "__main__":
    test()